/*
mentrixmax.
Todos os direitos reservados
Nome do projeto : Teste
Nome do módulo  : Negocio
Data de início  : 08/06/2013
Responsável(is) : Mateus Neto
Observações  : 
Contato : mentrixmax@gmail.com
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using DAO;
using Entidades;
using Menfram.Business.Abstract;
using Menfram.Common.Exceptions;
namespace Negocio
{
    /// <summary>
    ///  classe de negocio referente a tabela: tbCaixa
    /// </summary>
    public class CaixaNegocio:AbstractBusiness<CaixaEntidade>
        {
            /// <summary> 
            /// retorna a classe CaixaDAO
            /// </summary>
            /// <returns>IDAO</returns>
  public override  Menfram.DAL.Interface.IDAL<CaixaEntidade> getDAO()
                {return CaixaDAO.getInstance(); }

            /// <summary>
            /// metodo de validação no create
            /// Mateus Neto
            /// </summary>
            /// <param name="e">IEntidade</param>
            /// <returns>bool</returns>
            public override bool validaCreate(CaixaEntidade e)
                {
                   CaixaEntidade obj =  e;
				   if ((obj.Data == null) || obj.Data.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.Operacao == null) || obj.Operacao.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.Valor == null) || obj.Valor.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.SequencialUsr == null) || obj.SequencialUsr.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.SequencialVen == null) || obj.SequencialVen.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.Tipo == null) || obj.Tipo.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
                return true;}

            /// <summary>
            /// metodo de validação do update
            /// Mateus Neto
            /// </summary>
            /// <param name="e">IEntidade</param>
            /// <returns>bool</returns>
            public override bool validaUpdate(CaixaEntidade e)
                {
                   CaixaEntidade obj =  e;
				   if ((obj.Sequencial == null) || obj.Sequencial.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.Data == null) || obj.Data.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.Operacao == null) || obj.Operacao.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.Valor == null) || obj.Valor.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.SequencialUsr == null) || obj.SequencialUsr.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.SequencialVen == null) || obj.SequencialVen.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
				   if ((obj.Tipo == null) || obj.Tipo.ToString() == string.Empty)
					  {
						  throw new RequeridFieldKeyException(); 
					  }
                return true;}

              #region Singleton

                 /* atributo privado */

                 private static CaixaNegocio obj;

                 /* construtor privado implementacao singleton*/

                 private CaixaNegocio() { }

                 /*  metodo de implementação do singleton */

                 public static CaixaNegocio getInstance() 
                     { 
                         if (obj == null) 
                             { obj = new CaixaNegocio (); }

                         return obj; 

                     } 

         #endregion
        }
}
